<?php

require_once realpath (dirname (__FILE__) . '//..//..//pages.php');
require_once CLASS_DATABASE;
require_once INC_FUNCTIONS;
require_once INC_MESSAGES;

function classe ($values) {
    require_once CLASS_CLASSE;
    $classe = new Classe ($values);
    return $classe->update ();
}

function distretto ($values) {
    require_once CLASS_DISTRETTO;
    $distretto = new Distretto ($values);
    return $distretto->update ();
}

function docente ($values) {
    require_once CLASS_DOCENTE;
    require_once CLASS_LAVORA_IN;
    require_once CLASS_INSEGNA;
    $docente = new Docente ($values);
    $docente->update () or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to insert docente!');

    $db = openConnection ();

    /* Scuola */
    $db->delete ('lavora_in', 'IDdocente=' . $values['ID']);
    if (isset ($values['IDscuola'])) {
        $IDs = $values['IDscuola'];
        if (is_array ($IDs)) {
            foreach ($IDs as $IDscuola) {
                $values['IDscuola'] = $IDscuola;
                $lavora_in = new LavoraIn ($values);
                $lavora_in->insert () or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to insert lavora_in!');
            }
        } else {
            $lavora_in = new LavoraIn ($values);
            $lavora_in->insert () or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to insert lavora_in!');
        }
    }
    /* Materia */
    $db->delete ('insegna', 'IDdocente=' . $values['ID']);
    if (isset ($values['IDmateria'])) {
        if (is_array ($values['IDmateria'])) {
            $IDs = $values['IDmateria'];
            foreach ($IDs as $IDmateria) {
                $values['IDmateria'] = $IDmateria;
                $insegna = new Insegna ($values);
                $insegna->insert () or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to insert insegna!');
            }
        } else {
            $insegna = new Insegna ($values);
            $insegna->insert () or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to insert insegna!');
        }
    }
    return true;
}

function indirizzo ($values) {
    require_once CLASS_INDIRIZZO;
    
    $indirizzo = new Indirizzo ($values);
    
    return $indirizzo->update () or notify (MSG_FAILED_UPDATE . ' indirizzo');
}

function intervento ($values) {
    require_once CLASS_INTERVENTO;
    require_once CLASS_EFFETTUA;
    $intervento = new Intervento ($values);
    $intervento->update () or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to insert intervento!');

    $effettua = new Effettua ($values);
    return $effettua->update ("effettua.IDintervento='" . $intervento->get ('ID') . "'") or header ('location: ' . HTTP_CTRL_MAIN . '?msg=Failed to update effettua!');
}

function materia ($values) {
    require_once CLASS_MATERIA;
    
    $materia = new Materia ($values);
    
    return $materia->update () or notify (MSG_FAILED_UPDATE . ' materia');
}

function ospedale ($values) {
    require_once CLASS_OSPEDALE;
    $ospedale = new Ospedale ($values);
    return $ospedale->update () or notify (MSG_FAILED_UPDATE . ' ospedale');
}

function permesso ($values) {
    /*require_once CLASS_PERMESSO;
    require_once CLASS_POSSIEDE;
    require_once CLASS_USER;

    $permesso = new Permesso ($values);
    $user = new User ($values);
    $user->reload ();
    $possiede = new Possiede ($values);

    return $possiede->update () or header ('location: ' . HTTP_CTRL_MAIN . 'msg=' . MSG_FAILED_UPDATE . ' permesso');*/
}

function reparto ($values) {
    require_once CLASS_REPARTO;
    
    $record = new Reparto($values);
    
    return $record->update() or notify (MSG_FAILED_UPDATE . ' ' . $record->getTable ());
}

function ricovero ($values) {
    require_once CLASS_RICOVERO;
    
    $ricovero = new Ricovero($values);
    
    return $ricovero->update() or notify (MSG_FAILED_UPDATE . ' ricovero!');
}

function scuola ($values) {
    require_once CLASS_SCUOLA;

    $scuola = new Scuola ($values);

    return $scuola->update () or notify (MSG_FAILED_UPDATE . ' scuola');
}

function studente ($values) {
    require_once CLASS_STUDENTE;
    require_once CLASS_FREQUENTA;

    $studente = new Studente ($values);
    $studente->update () or notify ('Failed to insert studente!');

    $frequenta = new Frequenta ($values);
    $frequenta->update () or notify ('Failed to insert frequenta!');
    return true;
}

function tipoIntervento ($values) {
    require_once CLASS_TIPO_INTERVENTO;
    $tipo_intervento = new TipoIntervento ($values);
    return $tipo_intervento->update () or notify (MSG_FAILED_UPDATE . ' tipo_intervento!');
}

function tipoRicovero ($values) {
    require_once CLASS_TIPO_RICOVERO;
    $tipo_ricovero = new TipoRicovero ($values);
    print_r ($tipo_ricovero);
    return $tipo_ricovero->update () or notify (MSG_FAILED_UPDATE . ' tipo_ricovero!');
}

function user ($values) {
    require_once CLASS_USER;
    $user = new User ($values);
    return $user->update () or notify (MSG_FAILED_UPDATE . ' user');
}

?>
